<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

  <head>
    <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=iso-8859-1" />
    <title>LISPBUILDER-SDL-GFX - </title>
    <style type="text/css">

      body {
      margin: 10px 20px 20px 220px;
      padding: 0px;
      font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
      font-size: small;
      text-align: justify;
      max-width: 50em;
      background-color: white;
      }

      a, a:visited {
      text-decoration: none;
      color: maroon;
      }

      /* index */

      div.index {
      position: fixed;
      top: 0px;
      left: 0px;
      width: 180px;
      height: 100%;
      margin: 0px;
      padding: 5px;
      font-size: 12px;
      background-color: #DCDCDC;
      border-right: thin black solid;
      }

      div.index ol {
      color: navy;
      margin: 0px;
      padding-left: 0px;
      }

      div.index ol li {
      list-style: none;
      }

      div.index ol li:before {
      display: marker;
      content: counter(heading1) ". ";
      counter-increment: heading1;
      }

      div.index ol ol {
      padding-left: 10px;
      font-size: 10px;
      list-style: none;
      counter-reset: heading2;
      }

      div.index ol ol li:before {
      display: marker;
      content: counter(heading1)"." counter(heading2)" ";
      counter-increment: heading2;
      }

      /* heading styles */

      body > h1 {
      margin-top: 0px;
      }

      h1 {
      margin-top: 40px;
      margin-bottom: 0px;
      color: #4682B4;
      }

      h1:before {
      display: marker;
      content: counter(chapter) ". ";
      counter-increment: chapter;
      counter-reset: section1;
      }

      h1 + p {
      margin-top: 5px;
      }

      h2 {
      margin-top: 20px;
      color: #000000;
      margin-bottom: 0px;
      }

      h2:before {
      display: marker;
      content: counter(chapter) "." counter(section1) "  ";
      counter-increment: section1;
      }

      h2 + p {
      margin-top: 0px;
      }

      h3 {
      margin-top: 20px;
      color: #000000;
      margin-bottom: 0px;
      }

      h3:before {
      display: marker;
      content: counter(chapter) "." counter(section1) "." counter(section2) "  ";
      counter-increment: section2;
      }

      h3 + p {
      margin-top: 0px;
      }

      h4 {
      margin-top: 20px;
      color: #000000;
      margin-bottom: 0px;
      }

      h4:before {
      display: marker;
      content: counter(chapter) "." counter(section1) "." counter(section2) "." counter(section3) "  ";
      counter-increment: section3;
      }

      h4 + p {
      margin-top: 0px;
      }

      /* generated content for images and tables */

      img:after {
      content: "[" counter(image) "] " attr(title);
      counter-increment: image;
      display: block;
      font-size: 10px;
      font-weight: bold;
      margin-top: 5px;
      margin-bottom: 20px;
      color: black;
      }

      table:after {
      content: "Table " counter(table) ": " attr(summary);
      counter-increment: table;
      display: table-caption;
      caption-side: bottom;
      font-size: 10px;
      font-weight: bold;
      margin-top: 5px;
      margin-bottom: 20px;
      white-space: nowrap;
      color: black;
      }

      /* code for examples, code and pathnames*/

      div.example table {
      color: black;
      }

      div.example, div.code, div.path, div.sequence {
      margin: 10px 0px;
      border: 1px black solid;
      padding: 10px;
      background-color: #F4F4F4;
      counter-reset: image;
      color: maroon;
      }

      div.example:before {
      content: "Example " counter(example);
      counter-increment: example;
      display: block;
      }

      div.example + p {
      margin-bottom: 0px;
      }

      div.code:before {
      content: "Code";
      }

      div.path:before {
      content: "Path";
      }

      div.sequence:before {
      content: "Sequence";
      }

      p.reference:before {
      display: marker;
      content: "[" counter(reference) "]";
      counter-increment: reference;
      font-weight: bold;
      margin-right: 5px;
      }

      div.code:before, div.example:before, div.path:before, div.sequence:before {
      font-weight: bold;
      font-size: 15px;
      margin-bottom: 20px;
      color: black;
      }

      pre {
      color: Green;
      margin: 0px;
      padding: 0px;
      }


      /* equation counter */

      e:after {
      content: "[" counter(equation) "]";
      counter-increment: equation;
      display: block;
      float: right;
      margin-right: 10px;
      }

      /* to prevent the CC image from being numbered */

      img[alt="Creative Commons License"] {
      display: inline;
      }

      img[alt="Creative Commons License"]:after {
      display: none;
      }

      div#cc {
      background-color: #DCDCDC;
      border: thin black solid;
      padding: 10px;
      font-size: 10px;
      }

      /* Table Design */
      /* http://www.duoh.com/csstutorials/csstables/ */
      #mytable {
      width: 700px;
      padding: 0;
      margin: 0;
      }

      caption {
      padding: 0 0 5px 0;
      width: 700px;
      font: italic 11px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
      text-align: right;
      }

      th {
      font: bold 11px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
      color: #4f6b72;
      border-right: 1px solid #C1DAD7;
      border-bottom: 1px solid #C1DAD7;
      border-top: 1px solid #C1DAD7;
      letter-spacing: 2px;
      text-transform: uppercase;
      text-align: left;
      padding: 6px 6px 6px 12px;
      background: #CAE8EA url(images/bg_header.jpg) no-repeat;
      }

      th.nobg {
      border-top: 0;
      border-left: 0;
      border-right: 1px solid #C1DAD7;
      background: none;
      }

      td {
      border-right: 1px solid #C1DAD7;
      border-bottom: 1px solid #C1DAD7;
      background: #fff;
      padding: 6px 6px 6px 12px;
      color: #4f6b72;
      }


      td.alt {
      background: #F5FAFA;
      color: #797268;
      }

      th.spec {
      border-left: 1px solid #C1DAD7;
      border-top: 0;
      background: #fff url(images/bullet1.gif) no-repeat;
      font: bold 10px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
      }

      th.specalt {
      border-left: 1px solid #C1DAD7;
      border-top: 0;
      background: #f5fafa url(images/bullet2.gif) no-repeat;
      font: bold 10px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
      color: #797268;
      }

    </style>
  </head>

  <!--
      (CC) 2003 Luke Crook. Some Rights Reserved.
      http://creativecommons.org/licenses/by/1.0
      This page is licensed under a Creative Commons License.

      Maintained by the Common Lisp Application Builder project at www.lispbuilder.org

      The entire styleguide was copied wholesale from http://www.markschenk.com/cssexp/publication/article.xml

      (CC) 2003 Mark Schenk. Some Rights Reserved.
      http://creativecommons.org/licenses/by/1.0
      This page is licensed under a Creative Commons License.
    -->

  <BODY BGCOLOR=#FFFFFF >

    <h1><a name="top" class=none> LISPBUILDER-SDL-GFX - </a></h1>

    <blockquote>
      <br>&nbsp;</br><h2><a name=abstract class=abstract>Abstract</a></h2>

      <p>
	LISPBUILDER-SDL-GFX provides a Lisp wrapper for the
	<a href="http://www.ferzkopp.net/joomla/content/view/19/14/">SDL_gfx</a> library,
	and provides support for renering several graphics primitives directly to SDL surfaces.
	LISPBUILDER-SDL-GFX has a dependency on the LISPBUILDER-SDL package.
	LISPBUILDER-SDL-GFX is distributed under the
	<a href="http://en.wikipedia.org/wiki/MIT_License">MIT-style license</a>.
      </p>
      <p>
	<font color=red>Current Version:</font> The current version of LISPBUILDER-SDL-GFX is version <a href="#download">0.2</a>.
      </p>
<!--       <p> -->
<!-- 	<font color=red>Download shortcut:</font> <a href="http://www.balooga.com/lispbuilder/lispbuilder-sdl-gfx.zip">http://www.balooga.com/lispbuilder/lispbuilder-sdl-gfx.zip</a>. -->
<!--       </p> -->
    </blockquote>

    <br>&nbsp;</br><h2><a class=none name="packageover">Package Overview</a></h2>
    <p>
      Functions and symbols exported from the LISPBUILDER-SDL-GFX package are
      accessible from the <code>LISPBUILDER-SDL-GFX:</code> prefix or the
      shorter form <code>SDL-GFX:</code> nickname.
    </p>

    <br>&nbsp;</br><h2><a class=none name="examplesimple">Simple Example</a></h2>
    <div class="example">
      <p>
	This example was created with the following code:
      </p>
      <p>
	<img src="sdl-gfx-examples_width-height.png" width="206" height="232" title="Width and Height" alt="Width and Height"/>
      </p>

      <pre>
(defun width-height ()
  (let ((width 200) (height 200))
    (sdl:with-init ()
      (sdl:window width height :title-caption "Width and Height, from Processing.org")
      (sdl:clear-display (sdl:color :r 127 :g 127 :b 127))
      (loop for i from 0 to height by 20
	 do (progn (sdl-gfx:draw-box (sdl:rectangle :x 0 :y i :w 200 :h 10)
				     :color sdl:*black*)
		   (sdl-gfx:draw-box (sdl:rectangle :x i :y 0 :w 10 :h 200)
				     :color sdl:*white*)))
      (sdl:with-events ()
	(:quit-event () t)
	(:video-expose-event () (sdl:update-display))))))
      </pre>
    </div>

    <div class="index">
      <ol>
	<li><a href="#top">LISPBUILDER-SDL-GFX</a></li>
	<ol>
	  <li><a href="#abstract">Abstract</a></li>
	  <li><a href="#packageover">Package Overview</a></li>
	  <li><a href="#examplesimple">Simple Example</a></li>
	  <li><a href="#compatibility">Compatibility</a></li>
	  <li><a href="#download">Download</a></li>
	  <li><a href="#installation">Installation</a></li>
	  <li><a href="#usage">Usage</a></li>
	  <li><a href="#examples">Examples</a></li>
	  <li><a href="#dependency">Dependencies</a></li>
	  <li><a href="#license">License</a></li>
	  <li><a href="#dictionar">LISPBUILDER-SDL-GFX dictionary</a></li>
	  <ol>
	    <li><a href="#dictionary">INDEX</a></li>
	  </ol>
	  <li><a href="#ack">Acknowledgements</a></li>
	</ol>
      </div>

      <br>&nbsp;</br><h2><a class=none name="dictionary">The LISPBUILDER-SDL-GFX dictionary Index</h2>
	<ol>
	        <li><a href="#*default-font*"><code>*default-font*</code></a>
	          <li><a href="#*font-10x20*"><code>*font-10x20*</code></a>
	          <li><a href="#*font-5x7*"><code>*font-5x7*</code></a>
	          <li><a href="#*font-5x8*"><code>*font-5x8*</code></a>
	          <li><a href="#*font-6x10*"><code>*font-6x10*</code></a>
	          <li><a href="#*font-6x12*"><code>*font-6x12*</code></a>
	          <li><a href="#*font-6x13*"><code>*font-6x13*</code></a>
	          <li><a href="#*font-6x13b*"><code>*font-6x13b*</code></a>
	          <li><a href="#*font-6x13o*"><code>*font-6x13o*</code></a>
	          <li><a href="#*font-6x9*"><code>*font-6x9*</code></a>
	          <li><a href="#*font-7x13*"><code>*font-7x13*</code></a>
	          <li><a href="#*font-7x13b*"><code>*font-7x13b*</code></a>
	          <li><a href="#*font-7x13o*"><code>*font-7x13o*</code></a>
	          <li><a href="#*font-7x14*"><code>*font-7x14*</code></a>
	          <li><a href="#*font-7x14b*"><code>*font-7x14b*</code></a>
	          <li><a href="#*font-8x13*"><code>*font-8x13*</code></a>
	          <li><a href="#*font-8x13b*"><code>*font-8x13b*</code></a>
	          <li><a href="#*font-8x13o*"><code>*font-8x13o*</code></a>
	          <li><a href="#*font-8x8*"><code>*font-8x8*</code></a>
	          <li><a href="#*font-9x15*"><code>*font-9x15*</code></a>
	          <li><a href="#*font-9x15b*"><code>*font-9x15b*</code></a>
	          <li><a href="#*font-9x18*"><code>*font-9x18*</code></a>
	          <li><a href="#*font-9x18b*"><code>*font-9x18b*</code></a>
	          <li><a href="#draw-aa-circle"><code>draw-aa-circle</code></a>
	          <li><a href="#draw-aa-circle-*"><code>draw-aa-circle-*</code></a>
	          <li><a href="#draw-aa-ellipse"><code>draw-aa-ellipse</code></a>
	          <li><a href="#draw-aa-ellipse-*"><code>draw-aa-ellipse-*</code></a>
	          <li><a href="#draw-aa-line"><code>draw-aa-line</code></a>
	          <li><a href="#draw-aa-line-*"><code>draw-aa-line-*</code></a>
	          <li><a href="#draw-aa-polygon"><code>draw-aa-polygon</code></a>
	          <li><a href="#draw-aa-trigon"><code>draw-aa-trigon</code></a>
	          <li><a href="#draw-bezier"><code>draw-bezier</code></a>
	          <li><a href="#draw-box"><code>draw-box</code></a>
	          <li><a href="#draw-box-*"><code>draw-box-*</code></a>
	          <li><a href="#draw-character-shaded"><code>draw-character-shaded</code></a>
	          <li><a href="#draw-character-shaded-*"><code>draw-character-shaded-*</code></a>
	          <li><a href="#draw-character-solid"><code>draw-character-solid</code></a>
	          <li><a href="#draw-character-solid-*"><code>draw-character-solid-*</code></a>
	          <li><a href="#draw-circle"><code>draw-circle</code></a>
	          <li><a href="#draw-circle-*"><code>draw-circle-*</code></a>
	          <li><a href="#draw-curve"><code>draw-curve</code></a>
	          <li><a href="#draw-ellipse"><code>draw-ellipse</code></a>
	          <li><a href="#draw-ellipse-*"><code>draw-ellipse-*</code></a>
	          <li><a href="#draw-filled-circle"><code>draw-filled-circle</code></a>
	          <li><a href="#draw-filled-circle-*"><code>draw-filled-circle-*</code></a>
	          <li><a href="#draw-filled-ellipse"><code>draw-filled-ellipse</code></a>
	          <li><a href="#draw-filled-ellipse-*"><code>draw-filled-ellipse-*</code></a>
	          <li><a href="#draw-filled-pie"><code>draw-filled-pie</code></a>
	          <li><a href="#draw-filled-pie-*"><code>draw-filled-pie-*</code></a>
	          <li><a href="#draw-filled-polygon"><code>draw-filled-polygon</code></a>
	          <li><a href="#draw-filled-trigon"><code>draw-filled-trigon</code></a>
	          <li><a href="#draw-font"><code>draw-font</code></a>
	          <li><a href="#draw-font"><code>draw-font</code></a>
	          <li><a href="#draw-font-at"><code>draw-font-at</code></a>
	          <li><a href="#draw-font-at-*"><code>draw-font-at-*</code></a>
	          <li><a href="#draw-hline"><code>draw-hline</code></a>
	          <li><a href="#draw-line"><code>draw-line</code></a>
	          <li><a href="#draw-line-*"><code>draw-line-*</code></a>
	          <li><a href="#draw-pie"><code>draw-pie</code></a>
	          <li><a href="#draw-pie-*"><code>draw-pie-*</code></a>
	          <li><a href="#draw-pixel"><code>draw-pixel</code></a>
	          <li><a href="#draw-pixel-*"><code>draw-pixel-*</code></a>
	          <li><a href="#draw-polygon"><code>draw-polygon</code></a>
	          <li><a href="#draw-rectangle"><code>draw-rectangle</code></a>
	          <li><a href="#draw-rectangle-*"><code>draw-rectangle-*</code></a>
	          <li><a href="#draw-shape"><code>draw-shape</code></a>
	          <li><a href="#draw-string-shaded"><code>draw-string-shaded</code></a>
	          <li><a href="#draw-string-shaded-*"><code>draw-string-shaded-*</code></a>
	          <li><a href="#draw-string-solid"><code>draw-string-solid</code></a>
	          <li><a href="#draw-string-solid-*"><code>draw-string-solid-*</code></a>
	          <li><a href="#draw-trigon"><code>draw-trigon</code></a>
	          <li><a href="#draw-vline"><code>draw-vline</code></a>
	          <li><a href="#font"><code>font</code></a>
	          <li><a href="#font-height"><code>font-height</code></a>
	          <li><a href="#font-width"><code>font-width</code></a>
	          <li><a href="#free-font"><code>free-font</code></a>
	          <li><a href="#initialise-default-font"><code>initialise-default-font</code></a>
	          <li><a href="#initialise-font"><code>initialise-font</code></a>
	          <li><a href="#render-string-shaded"><code>render-string-shaded</code></a>
	          <li><a href="#render-string-solid"><code>render-string-solid</code></a>
	          <li><a href="#roto-zoom-size"><code>roto-zoom-size</code></a>
	          <li><a href="#roto-zoom-size-xy"><code>roto-zoom-size-xy</code></a>
	          <li><a href="#roto-zoom-xy"><code>roto-zoom-xy</code></a>
	          <li><a href="#set-default-font"><code>set-default-font</code></a>
	          <li><a href="#with-bezier"><code>with-bezier</code></a>
	          <li><a href="#with-curve"><code>with-curve</code></a>
	          <li><a href="#with-shape"><code>with-shape</code></a>
	          <li><a href="#zoom-surface"><code>zoom-surface</code></a>
	          <li><a href="#zoom-surface-size"><code>zoom-surface-size</code></a>

	  </li>
	</ol>


      <br>&nbsp;</br><h2><a class=none name="compatibility">Compatibility</h2>
	<p>
	  The following table describes the status of the Lisp implementations that have been tested with
	  LISPBUILDER-SDL-GFX:
	</p>

	<table id="mytable" cellspacing="0" summary="Compatibility">
	  <tr>
	    <th><b>Lisp Implementation</b></th>
	    <th colspan="3"><b>LISPBUILDER-SDL-GFX Status</b></th>
	    <th><b>Comments</b></th>
	  </tr>
	  <tr>
	    <th colspan="1"></th>
	    <th><b>Win32</b></th>
	    <th><b>Linux</b></th>
	    <th><b>MacOS</b></th>
	    <th></th>
	  </tr>
	  <tr>
	    <th class="spec" scope="row">
	      <a href="http://clisp.cons.org/">CLISP v2.38</a>
	    </th>
	    <td bgcolor="#60c060">Working</td>
	    <td bgcolor="#60c060">Working</td>
	    <td bgcolor="#ff6060">No</td>
	    <td></td>
	  </tr>
	  <tr>
	    <th class="specalt" scope="row">
	      <a href="http://www.lispworks.com/">Lispworks v4.4.6 Personal</a>
	    </th>
	    <td class="alt" bgcolor="#60c060">Working</td>
	    <td class="alt" bgcolor="#60c060">Working</td>
	    <td class="alt" bgcolor="#ff6060">No</td>
	    <td></td>
	  </tr>
	  <tr>
	    <th class="spec" scope="row">
	      <a href="http://www.franz.com/">Allegro Express 8.0</a>
	    </th>
	    <td bgcolor="#ff6060">Unknown</td>
	    <td bgcolor="#ff6060">Unknown</td>
	    <td bgcolor="#ff6060">No</td>
	    <td></td>
	  </tr>
	  <tr>
	    <th class="specalt" scope="row">
	      <a href="http://openmcl.clozure.com/">OpenMCL</a>
	    </th>
	    <td class="alt" bgcolor=blue><font color="#FFFFFF">NA</font></td>
	    <td class="alt" bgcolor=blue><font color="#FFFFFF">NA</font></td>
	    <td class="alt" bgcolor="#ff6060">Unknown</td>
	    <td></td>
	  </tr>
	  <tr>
	    <th class="spec" scope="row">
	      <a href="http://www.sbcl.org/">SBCL</a>
	    </th>
	    <td bgcolor="#60c060">Working</td>
	    <td bgcolor="#60c060">Working</td>
	    <td bgcolor="#ff6060">No</td>
	    <td></td>
	  </tr>
	</table>


	<br>&nbsp;</br><h2><a class=none name="download">Download</a></h2>
	<ul>
	  <li><font color=red>Development:</font> Available via anonymous SVN at:
	    <pre>
	      svn co https://lispbuilder.svn.sourceforge.net/svnroot/lispbuilder lispbuilder
	    </pre>
	  </li>
	  <li>
	    <font color=red>Stable:</font> The latest stable versions are available from the
	    <a href="http://sourceforge.net/project/showfiles.php?group_id=159740">LISPBUILDER-SDL repository on SourceForge.</a>
	  </li>
	  <li>
	    <font color=red>The Edi Weitz 'Starter Pack' Version:</font> The stable version of Lispbuilder,
	    suitable for the installation of installation LISPBUILDER-SDL-GFX using the Lisp Starter Pack from Edi Weitz is can be downloaded from
	    <a href="http://www.balooga.com/lispbuilder/lispbuilder-sdl-gfx.zip">http://www.balooga.com/lispbuilder/lispbuilder-sdl-gfx.zip</a>.
	  </li>
	</ul>

	<br>&nbsp;</br><h2><a class=none name="installation">Installation</a></h2>
	<p>See <a href="http://lispbuilder.sourceforge.net/index.html#installation">the LISPBUILDER documentation</a>
	  for installation instructions.
	</p>

	<br>&nbsp;</br><h2><a class=none name="usage">Using LISPBUILDER-SDL-GFX</a></h2>
	<p>See <a href="http://lispbuilder.sourceforge.net/index.html#usage">the LISPBUILDER documentation</a>
	  for Usage instructions.
	</p>

	<br>&nbsp;</br><h2><a class=none name="examples">Running Examples in LISPBUILDER-SDL-GFX-EXAMPLES</a></h2>
	<p>Enter the following at the REPL to load the examples included in the
	  LISPBUILDER-SDL-GFX-EXAMPLES package:</p>
	<pre>
	  (asdf:operate 'asdf:load-op :lispbuilder-sdl-gfx-examples)
	</pre>
	<p>Run the examples by entering any of the following at the REPL:
	</p>
	<ul>
	  <li>(SDL-GFX-EXAMPLES:RECURSION)</li>
	  <li>(SDL-GFX-EXAMPLES:METABALLS)</li>
	  <li>(SDL-GFX-EXAMPLES:POINTS-AND-LINES)</li>
	  <li>(SDL-GFX-EXAMPLES:FUNCTIONS)</li>
	  <li>(SDL-GFX-EXAMPLES:WIDTH-HEIGHT)</li>
	  <li>(SDL-GFX-EXAMPLES:INBUILT-FONT)</li>
	  <li>(SDL-GFX-EXAMPLES:BEZIER)</li>
	  <li>(SDL-GFX-EXAMPLES:VERTICES)</li>
	  <li>(SDL-GFX-EXAMPLES:SHAPE-PRIMITIVES)</li>
	  <li>(SDL-GFX-EXAMPLES:SETUP-AND-DRAW)</li>
	  <li>(SDL-GFX-EXAMPLES:DISTANCE-2D)</li>
	  <li>(SDL-GFX-EXAMPLES:RANDOM-CIRCLES)</li>
	  <li>(SDL-GFX-EXAMPLES:OBJECTS)</li>
	</ul>


	<br>&nbsp;</br><h2><a class=none name="dependency">Dependencies</a></h2>
	<p>LISPBUILDER-SDL-GFX has a dependency on LISPBUILDER-SDL.</p>


	<br>&nbsp;</br><h2><a class=none name="license">License</a></h2>
	<p>
	  LISPBUILDER-SDL-GFX is distributed under the
	  <a href="http://en.wikipedia.org/wiki/MIT_License">MIT-style license</a>.
	</p>



	<br>&nbsp;</br><h2><a class=none name="dictionar">The LISPBUILDER-SDL-GFX dictionary</a></h2>





<!-- Entry for *DEFAULT-FONT* -->

<p><br>[Special variable]<br><a class=none name='*default-font*'><b>*default-font*</b></a>
<blockquote><br>

<p>When a LISPBUILDER-SDL-GFX function or macro has an <code>OPTIONAL</code> or <code>KEY</code>word argument  <code>FONT</code>, the default action is to bind to <code>*DEFAULT-FONT*</code>.<code>*DEFAULT-FONT*</code> is set to <code>NIL</code> initially.  A font must be initialized by calling <a href="#initialise-default-font">INITIALISE-DEFAULT-FONT</a> prior to use. </p>

</blockquote>

<!-- End of entry for *DEFAULT-FONT* -->


<!-- Entry for *FONT-10X20* -->

<p><br>[Special variable]<br><a class=none name='*font-10x20*'><b>*font-10x20*</b></a>
<blockquote><br>

<p>Contains the font data for an 10x20 bitmap font. </p>

</blockquote>

<!-- End of entry for *FONT-10X20* -->


<!-- Entry for *FONT-5X7* -->

<p><br>[Special variable]<br><a class=none name='*font-5x7*'><b>*font-5x7*</b></a>
<blockquote><br>

<p>Contains the font data for an 5x7 bitmap font. </p>

</blockquote>

<!-- End of entry for *FONT-5X7* -->


<!-- Entry for *FONT-5X8* -->

<p><br>[Special variable]<br><a class=none name='*font-5x8*'><b>*font-5x8*</b></a>
<blockquote><br>

<p>Contains the font data for an 5x8 bitmap font. </p>

</blockquote>

<!-- End of entry for *FONT-5X8* -->


<!-- Entry for *FONT-6X10* -->

<p><br>[Special variable]<br><a class=none name='*font-6x10*'><b>*font-6x10*</b></a>
<blockquote><br>

<p>Contains the font data for an 6x10 bitmap font. </p>

</blockquote>

<!-- End of entry for *FONT-6X10* -->


<!-- Entry for *FONT-6X12* -->

<p><br>[Special variable]<br><a class=none name='*font-6x12*'><b>*font-6x12*</b></a>
<blockquote><br>

<p>Contains the font data for an 6x12 bitmap font. </p>

</blockquote>

<!-- End of entry for *FONT-6X12* -->


<!-- Entry for *FONT-6X13* -->

<p><br>[Special variable]<br><a class=none name='*font-6x13*'><b>*font-6x13*</b></a>
<blockquote><br>

<p>Contains the font data for an 6x13 bitmap font. </p>

</blockquote>

<!-- End of entry for *FONT-6X13* -->


<!-- Entry for *FONT-6X13B* -->

<p><br>[Special variable]<br><a class=none name='*font-6x13b*'><b>*font-6x13b*</b></a>
<blockquote><br>

<p>Contains the font data for an 6x13 bitmap font. </p>

</blockquote>

<!-- End of entry for *FONT-6X13B* -->


<!-- Entry for *FONT-6X13O* -->

<p><br>[Special variable]<br><a class=none name='*font-6x13o*'><b>*font-6x13o*</b></a>
<blockquote><br>

<p>Contains the font data for an 6x13 bitmap font. </p>

</blockquote>

<!-- End of entry for *FONT-6X13O* -->


<!-- Entry for *FONT-6X9* -->

<p><br>[Special variable]<br><a class=none name='*font-6x9*'><b>*font-6x9*</b></a>
<blockquote><br>

<p>Contains the font data for an 6x9 bitmap font. </p>

</blockquote>

<!-- End of entry for *FONT-6X9* -->


<!-- Entry for *FONT-7X13* -->

<p><br>[Special variable]<br><a class=none name='*font-7x13*'><b>*font-7x13*</b></a>
<blockquote><br>

<p>Contains the font data for an 7x13 bitmap font. </p>

</blockquote>

<!-- End of entry for *FONT-7X13* -->


<!-- Entry for *FONT-7X13B* -->

<p><br>[Special variable]<br><a class=none name='*font-7x13b*'><b>*font-7x13b*</b></a>
<blockquote><br>

<p>Contains the font data for an 7x13 bitmap font. </p>

</blockquote>

<!-- End of entry for *FONT-7X13B* -->


<!-- Entry for *FONT-7X13O* -->

<p><br>[Special variable]<br><a class=none name='*font-7x13o*'><b>*font-7x13o*</b></a>
<blockquote><br>

<p>Contains the font data for an 7x13 bitmap font. </p>

</blockquote>

<!-- End of entry for *FONT-7X13O* -->


<!-- Entry for *FONT-7X14* -->

<p><br>[Special variable]<br><a class=none name='*font-7x14*'><b>*font-7x14*</b></a>
<blockquote><br>

<p>Contains the font data for an 7x14 bitmap font. </p>

</blockquote>

<!-- End of entry for *FONT-7X14* -->


<!-- Entry for *FONT-7X14B* -->

<p><br>[Special variable]<br><a class=none name='*font-7x14b*'><b>*font-7x14b*</b></a>
<blockquote><br>

<p>Contains the font data for an 7x14 bitmap font. </p>

</blockquote>

<!-- End of entry for *FONT-7X14B* -->


<!-- Entry for *FONT-8X13* -->

<p><br>[Special variable]<br><a class=none name='*font-8x13*'><b>*font-8x13*</b></a>
<blockquote><br>

<p>Contains the font data for an 8x13 bitmap font. </p>

</blockquote>

<!-- End of entry for *FONT-8X13* -->


<!-- Entry for *FONT-8X13B* -->

<p><br>[Special variable]<br><a class=none name='*font-8x13b*'><b>*font-8x13b*</b></a>
<blockquote><br>

<p>Contains the font data for an 8x13 bitmap font. </p>

</blockquote>

<!-- End of entry for *FONT-8X13B* -->


<!-- Entry for *FONT-8X13O* -->

<p><br>[Special variable]<br><a class=none name='*font-8x13o*'><b>*font-8x13o*</b></a>
<blockquote><br>

<p>Contains the font data for an 8x13 bitmap font. </p>

</blockquote>

<!-- End of entry for *FONT-8X13O* -->


<!-- Entry for *FONT-8X8* -->

<p><br>[Special variable]<br><a class=none name='*font-8x8*'><b>*font-8x8*</b></a>
<blockquote><br>

<p>Contains the font data for an 8x8 bitmap font. </p>

</blockquote>

<!-- End of entry for *FONT-8X8* -->


<!-- Entry for *FONT-9X15* -->

<p><br>[Special variable]<br><a class=none name='*font-9x15*'><b>*font-9x15*</b></a>
<blockquote><br>

<p>Contains the font data for an 9x15 bitmap font. </p>

</blockquote>

<!-- End of entry for *FONT-9X15* -->


<!-- Entry for *FONT-9X15B* -->

<p><br>[Special variable]<br><a class=none name='*font-9x15b*'><b>*font-9x15b*</b></a>
<blockquote><br>

<p>Contains the font data for an 9x15 bitmap font. </p>

</blockquote>

<!-- End of entry for *FONT-9X15B* -->


<!-- Entry for *FONT-9X18* -->

<p><br>[Special variable]<br><a class=none name='*font-9x18*'><b>*font-9x18*</b></a>
<blockquote><br>

<p>Contains the font data for an 9x18 bitmap font. </p>

</blockquote>

<!-- End of entry for *FONT-9X18* -->


<!-- Entry for *FONT-9X18B* -->

<p><br>[Special variable]<br><a class=none name='*font-9x18b*'><b>*font-9x18b*</b></a>
<blockquote><br>

<p>Contains the font data for an 9x18 bitmap font. </p>

</blockquote>

<!-- End of entry for *FONT-9X18B* -->


<!-- Entry for DRAW-AA-CIRCLE -->

<p><br>[Function]<br><a class=none name='draw-aa-circle'><b>draw-aa-circle</b> <i>p1 r <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>See <a href="#draw-aa-circle-*">DRAW-AA-CIRCLE-*</a>. </p><h5>Parameters </h5>
<ul><li><code>P1</code> is the X/Y coordinate of the center of the antialiased circle, of type <code>SDL:POINT</code>. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-AA-CIRCLE -->


<!-- Entry for DRAW-AA-CIRCLE-* -->

<p><br>[Function]<br><a class=none name='draw-aa-circle-*'><b>draw-aa-circle-*</b> <i>x y r <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Draws the circumference of a circle of color COLOR to the surface SURFACE using anti-aliasing. Use <a href="#draw-filled-circle-*">DRAW-FILLED-CIRCLE-*</a> to draw a filled circle. </p><h5>Parameters </h5>
<ul><li><code>X</code> and <code>Y</code> specify the center coordinate of the circle, of type <code>INTEGER</code>. </li>
<li><code>R</code> is the circle radius, of type <code>INTEGER</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the circumference color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-AA-CIRCLE-* -->


<!-- Entry for DRAW-AA-ELLIPSE -->

<p><br>[Function]<br><a class=none name='draw-aa-ellipse'><b>draw-aa-ellipse</b> <i>p1 rx ry <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>See <a href="#draw-aa-ellipse-*">DRAW-AA-ELLIPSE-*</a>. </p><h5>Parameters </h5>
<ul><li><code>P1</code> is the X/Y coordinate of the center of the ellipse, of type <code>SDL:POINT</code>. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-AA-ELLIPSE -->


<!-- Entry for DRAW-AA-ELLIPSE-* -->

<p><br>[Function]<br><a class=none name='draw-aa-ellipse-*'><b>draw-aa-ellipse-*</b> <i>x y rx ry <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Draws the circumference of an ellipse of color COLOR to the surface SURFACE using anti-aliasing. Use <a href="#draw-filled-ellipse-*">DRAW-FILLED-ELLIPSE-*</a> to draw a filled ellipse. </p><h5>Parameters </h5>
<ul><li><code>X</code> and <code>Y</code> specify the center coordinate of the ellipse, of type <code>INTEGER</code>. </li>
<li><code>RX</code> and <code>RY</code> specify the ellipse radius, of type <code>INTEGER</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the circumference color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-AA-ELLIPSE-* -->


<!-- Entry for DRAW-AA-LINE -->

<p><br>[Function]<br><a class=none name='draw-aa-line'><b>draw-aa-line</b> <i>point1 point2 <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>See <a href="#draw-aa-line-*">DRAW-AA-LINE-*</a>-* </p><h5>Parameters </h5>
<ul><li><code>POINT1</code> and <code>POINT2</code> are the start and end x/y co-ordinates of the line, of type <code>SDL:POINT</code>. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-AA-LINE -->


<!-- Entry for DRAW-AA-LINE-* -->

<p><br>[Function]<br><a class=none name='draw-aa-line-*'><b>draw-aa-line-*</b> <i>x1 y1 x2 y2 <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Draws an antialiased line of color <code>COLOR</code> to the surface <code>SURFACE</code>. </p><h5>Parameters </h5>
<ul><li><code>X1</code><code>Y1</code> are the start X/Y coordinates of the line, of type <code>INTEGER</code>. </li>
<li><code>X2</code><code>Y2</code> are the end X/Y coordinates of the line, of type <code>INTEGER</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the line color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-AA-LINE-* -->


<!-- Entry for DRAW-AA-POLYGON -->

<p><br>[Function]<br><a class=none name='draw-aa-polygon'><b>draw-aa-polygon</b> <i>points <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Draw the circumference of a polygon of color <code>COLOR</code> to surface SURFACE using the vertices in <code>POINTS</code>. The polygon is anti-aliased. Use <a href="#draw-filled-polygon-*">DRAW-FILLED-POLYGON-*</a> to draw a filled polygon. </p><h5>Parameters </h5>
<ul><li><code>POINTS</code> is the list of vertices of type <code>SDL:POINT</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the circumference color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-AA-POLYGON -->


<!-- Entry for DRAW-AA-TRIGON -->

<p><br>[Function]<br><a class=none name='draw-aa-trigon'><b>draw-aa-trigon</b> <i>point1 point2 point3 <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Draw the outline of a trigon or triangle, of color <code>COLOR</code> to surface <code>SURFACE</code> using anti-aliasing. Use <a href="#draw-filled-trigon-*">DRAW-FILLED-TRIGON-*</a> to draw a filled trigon. </p><h5>Parameters </h5>
<ul><li><code>POINT1</code>, <code>POINT2</code> and <code>POINT3</code> specify the vertices of the trigon, of type <code>SDL:POINT</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the circumference color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-AA-TRIGON -->


<!-- Entry for DRAW-BEZIER -->

<p><br>[Function]<br><a class=none name='draw-bezier'><b>draw-bezier</b> <i>points steps <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Draw a bezier curve of color <code>COLOR</code> to the surface <code>SURFACE</code>. The shape of the Bezier curve is defined by several control points.  A control point is a vertex containing an X and Y coordinate pair. </p><h5>Parameters </h5>
<ul><li><code>POINTS</code> is the list of control points of type <code>SDL:POINT</code>. </li>
<li><code>STEPS</code> is the number of segments used to draw the Bezier curve. The greater the number of segments, the smoother the Bezier curve. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the line color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul><h5>Example </h5>
<pre><code>(DRAW-BEZIER (LIST (SDL:POINT :X 60  :Y 40)
                     (SDL:POINT :X 160 :Y 10)
                     (SDL:POINT :X 170 :Y 150)
                     (SDL:POINT :X 60 :Y 150))
               10)
</code></pre>

</blockquote>

<!-- End of entry for DRAW-BEZIER -->


<!-- Entry for DRAW-BOX -->

<p><br>[Function]<br><a class=none name='draw-box'><b>draw-box</b> <i>rect <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>See <a href="#draw-box-*">DRAW-BOX-*</a>. </p><h5>Parameters </h5>
<ul><li><code>RECT</code> is the rectangle to fill, of type <code>SDL:RECTANGLE</code>. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-BOX -->


<!-- Entry for DRAW-BOX-* -->

<p><br>[Function]<br><a class=none name='draw-box-*'><b>draw-box-*</b> <i>x y w h <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Draws a filled rectangle of color <code>COLOR</code> to surface <code>SURFACE</code>. </p><h5>Parameters </h5>
<ul><li><code>X</code> and <code>Y</code> are the <code>INTEGER</code> coordinates of the top-left corner of the rectangle. </li>
<li><code>W</code> and <code>H</code> are the width and height of the rectangle, of type <code>INTEGER</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the fill color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-BOX-* -->


<!-- Entry for DRAW-CHARACTER-SHADED -->

<p><br>[Function]<br><a class=none name='draw-character-shaded'><b>draw-character-shaded</b> <i>c p1 fg-color bg-color <tt>&amp;key</tt> font surface</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>See <a href="#draw-character-shaded-*">DRAW-CHARACTER-SHADED-*</a>. </p><h5>Parameters </h5>
<ul><li><code>P1</code> is the x and y position to render the character, of type <code>SDL:POINT</code>. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-CHARACTER-SHADED -->


<!-- Entry for DRAW-CHARACTER-SHADED-* -->

<p><br>[Function]<br><a class=none name='draw-character-shaded-*'><b>draw-character-shaded-*</b> <i>c x y fg-color bg-color <tt>&amp;key</tt> font surface</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Draw the character <code>C</code> at location <code>X</code><code>Y</code> using font <code>FONT</code> with text color <code>FG-COLOR</code> and background color <code>BG-COLOR</code> onto surface <code>SURFACE</code>.  The surface background is filled with <code>BG-COLOR</code> so the surface cannot be keyed over other surfaces. </p><ul><li><code>C</code> is the character to render.  </li>
<li><code>X</code> and <code>Y</code> are the x and y position coordinates, as <code>INTEGERS</code>. </li>
<li><code>FG-COLOR</code> color is the character color, of type SDL:SDL-COLOR </li>
<li><code>BG-COLOR</code> color is the background color used to fill the surface <code>SURFACE</code>, of type SDL:SDL-COLOR </li>
<li><code>FONT</code> is the font face used to render the character. Of type <code>FONT</code>.  Bound to <code>*DEFAULT-FONT*</code> if unspecified.  </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
</ul><h5>Returns </h5>
<ul><li>Returns the font <code>FONT</code>. </li>
</ul><h5>Example </h5>
<pre><code>(DRAW-CHARACTER-SHADED-* &amp;quot;Hello World!&amp;quot; 0 0 F-COLOR B-COLOR :SURFACE A-SURFACE)
</code></pre>

</blockquote>

<!-- End of entry for DRAW-CHARACTER-SHADED-* -->


<!-- Entry for DRAW-CHARACTER-SOLID -->

<p><br>[Function]<br><a class=none name='draw-character-solid'><b>draw-character-solid</b> <i>c p1 <tt>&amp;key</tt> font surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>See <a href="#draw-character-solid-*">DRAW-CHARACTER-SOLID-*</a>. </p><h5>Parameters </h5>
<ul><li><code>P1</code> is the x and y position to render the character, of type <code>SDL:POINT</code>. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-CHARACTER-SOLID -->


<!-- Entry for DRAW-CHARACTER-SOLID-* -->

<p><br>[Function]<br><a class=none name='draw-character-solid-*'><b>draw-character-solid-*</b> <i>c x y <tt>&amp;key</tt> font surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Draw character <code>C</code> at location <code>X</code><code>Y</code> using font <code>FONT</code> with text color <code>COLOR</code> onto surface <code>SURFACE</code>. The character is keyed onto SURFACE. </p><h5>Parameters </h5>
<ul><li><code>C</code> is the character to render.  </li>
<li><code>X</code> and <code>Y</code> are the x and y position coordinates, as <code>INTEGERS</code>. </li>
<li><code>FONT</code> is the font face used to render the character. Of type <code>FONT</code>.  Bound to <code>*DEFAULT-FONT*</code> if unspecified.  </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> color is the character color, of type <code>SDL:SDL-COLOR</code>. </li>
</ul><h5>Returns </h5>
<ul><li>Returns the font <code>FONT</code>. </li>
</ul><h5>Example </h5>
<pre><code>(DRAW-CHARACTER-SOLID-* &amp;quot;Hello World!&amp;quot; 0 0 :SURFACE A-SURFACE :COLOR A-COLOR)
</code></pre>

</blockquote>

<!-- End of entry for DRAW-CHARACTER-SOLID-* -->


<!-- Entry for DRAW-CIRCLE -->

<p><br>[Function]<br><a class=none name='draw-circle'><b>draw-circle</b> <i>p1 r <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>See <a href="#draw-circle-*">DRAW-CIRCLE-*</a>. </p><h5>Parameters </h5>
<ul><li><code>P1</code> is the X/Y coordinate of the center of the circle, of type <code>SDL:POINT</code>. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-CIRCLE -->


<!-- Entry for DRAW-CIRCLE-* -->

<p><br>[Function]<br><a class=none name='draw-circle-*'><b>draw-circle-*</b> <i>x y r <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Draws a circle circumference of color <code>COLOR</code> to the surface <code>SURFACE</code>. Use <a href="#draw-filled-circle-*">DRAW-FILLED-CIRCLE-*</a> to draw a filled circle. </p><h5>Parameters </h5>
<ul><li><code>X</code> and <code>Y</code> specify the center coordinate of the circle, of type <code>INTEGER</code>. </li>
<li><code>R</code> is the circle radius, of type <code>INTEGER</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the circumference color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-CIRCLE-* -->


<!-- Entry for DRAW-CURVE -->

<p><br>[Function]<br><a class=none name='draw-curve'><b>draw-curve</b> <i>points type segments <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Draw a Cattmul-Rom spline using color <code>COLOR</code> to the surface <code>SURFACE</code>. The shape of the curve is defined by waypoints.  A waypoint is a vertex containing an X and Y coordinate pair. </p><h5>Parameters </h5>
<ul><li><code>POINTS</code> is a list of waypoints or vetices for the spline, of type <code>SDL:POINT</code></li>
<li><code>TYPE</code> describes the line style used to draw the curve and may be one of  <code>:LINE-STRIP</code>, <code>:LINES</code>, or <code>:POINTS</code>. Use <code>:LINE-STRIP</code> to draw a single continuous line through the specified waypoints. Use <code>:LINES</code> to draw a line between alternate waypoint pairs. Use <code>:POINTS</code> to draw a single pixel at each waypoint. </li>
<li><code>SEGMENTS</code> is the number of segments used to draw the Catmull-Rom spline.   Default is 10 segments if unspecified. The greater the number of segments,  the smoother the spline. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>.  </li>
<li><code>COLOR</code> is the line color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul><h5>Example </h5>
<pre><code>(DRAW-CURVE (LIST (SDL:POINT :X 60  :Y 40)
    	  (SDL:POINT :X 160 :Y 10)
	  (SDL:POINT :X 170 :Y 150)
	  (SDL:POINT :X 60  :Y 150))
    :LINE-STRIP
    10)
</code></pre>

</blockquote>

<!-- End of entry for DRAW-CURVE -->


<!-- Entry for DRAW-ELLIPSE -->

<p><br>[Function]<br><a class=none name='draw-ellipse'><b>draw-ellipse</b> <i>p1 rx ry <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>See <a href="#draw-ellipse-*">DRAW-ELLIPSE-*</a>. </p><h5>Parameters </h5>
<ul><li><code>P1</code> is the X/Y coordinate of the center of the ellipse, of type <code>SDL:POINT</code>. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-ELLIPSE -->


<!-- Entry for DRAW-ELLIPSE-* -->

<p><br>[Function]<br><a class=none name='draw-ellipse-*'><b>draw-ellipse-*</b> <i>x y rx ry <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Draws an ellipse circumference of color <code>COLOR</code> to the surface <code>SURFACE</code>. Use <a href="#draw-filled-ellipse-*">DRAW-FILLED-ELLIPSE-*</a> to draw a filled ellipse. </p><h5>Parameters </h5>
<ul><li><code>X</code> and <code>Y</code> specify the center coordinate of the ellipse, of type <code>INTEGER</code>. </li>
<li><code>RX</code> and <code>RY</code> specify the ellipse radius, of type <code>INTEGER</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the circumference color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-ELLIPSE-* -->


<!-- Entry for DRAW-FILLED-CIRCLE -->

<p><br>[Function]<br><a class=none name='draw-filled-circle'><b>draw-filled-circle</b> <i>p1 r <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>See <a href="#draw-filled-circle-*">DRAW-FILLED-CIRCLE-*</a>. </p><h5>Parameters </h5>
<ul><li><code>P1</code> is the X/Y coordinate of the center of the filled circle, of type <code>SDL:POINT</code>. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-FILLED-CIRCLE -->


<!-- Entry for DRAW-FILLED-CIRCLE-* -->

<p><br>[Function]<br><a class=none name='draw-filled-circle-*'><b>draw-filled-circle-*</b> <i>x y r <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Draws a filled circle of color <code>COLOR</code> to the surface <code>SURFACE</code>. </p><h5>Parameters </h5>
<ul><li><code>X</code> and <code>Y</code> specify the center coordinate of the circle, of type <code>INTEGER</code>. </li>
<li><code>R</code> is the circle radius, of type <code>INTEGER</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the fill color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-FILLED-CIRCLE-* -->


<!-- Entry for DRAW-FILLED-ELLIPSE -->

<p><br>[Function]<br><a class=none name='draw-filled-ellipse'><b>draw-filled-ellipse</b> <i>p1 rx ry <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>See <a href="#draw-filled-ellipse-*">DRAW-FILLED-ELLIPSE-*</a>. </p><h5>Parameters </h5>
<ul><li><code>P1</code> is the X/Y coordinate of the center of the filled ellipse, of type <code>SDL:POINT</code>. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-FILLED-ELLIPSE -->


<!-- Entry for DRAW-FILLED-ELLIPSE-* -->

<p><br>[Function]<br><a class=none name='draw-filled-ellipse-*'><b>draw-filled-ellipse-*</b> <i>x y rx ry <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Draws a filled ellipse of color <code>COLOR</code> to the surface <code>SURFACE</code>. </p><h5>Parameters </h5>
<ul><li><code>X</code> and <code>Y</code> specify the center coordinate of the ellipse, of type <code>INTEGER</code>. </li>
<li><code>RX</code> and <code>RY</code> specify the ellipse radius, of type <code>INTEGER</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the fill color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-FILLED-ELLIPSE-* -->


<!-- Entry for DRAW-FILLED-PIE -->

<p><br>[Function]<br><a class=none name='draw-filled-pie'><b>draw-filled-pie</b> <i>p1 rad start end <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>See <a href="#draw-filled-pie-*">DRAW-FILLED-PIE-*</a>. </p><h5>Parameters </h5>
<ul><li><code>P1</code> is the X/Y coordinate of the center of the filled pie, of type <code>SDL:POINT</code>. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-FILLED-PIE -->


<!-- Entry for DRAW-FILLED-PIE-* -->

<p><br>[Function]<br><a class=none name='draw-filled-pie-*'><b>draw-filled-pie-*</b> <i>x y rad start end <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Draws a filled pie of color <code>COLOR</code> to the surface <code>SURFACE</code>. </p><h5>Parameters </h5>
<ul><li><code>X</code> and <code>Y</code> specify the center coordinate of the pie, of type <code>INTEGER</code>. </li>
<li><code>RAD</code> is the pie radius, of type <code>INTEGER</code>. </li>
<li><code>START</code> is the pie start, of type <code>INTEGER</code>. </li>
<li><code>END</code> is the pie end, of type <code>INTEGER</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the fill color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-FILLED-PIE-* -->


<!-- Entry for DRAW-FILLED-POLYGON -->

<p><br>[Function]<br><a class=none name='draw-filled-polygon'><b>draw-filled-polygon</b> <i>points <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Draw a filled polygon, of color <code>COLOR</code> to surface <code>SURFACE</code>. </p><h5>Parameters </h5>
<ul><li><code>POINTS</code> is the list of vertices of type <code>SDL:POINT</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the fill color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-FILLED-POLYGON -->


<!-- Entry for DRAW-FILLED-TRIGON -->

<p><br>[Function]<br><a class=none name='draw-filled-trigon'><b>draw-filled-trigon</b> <i>point1 point2 point3 <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Draw a filled trigon, of color <code>COLOR</code> to surface <code>SURFACE</code>. </p><h5>Parameters </h5>
<ul><li><code>POINT1</code>, <code>POINT2</code> and <code>POINT3</code> specify the vertices of the trigon, of type <code>SDL:POINT</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the fill color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-FILLED-TRIGON -->


<!-- Entry for DRAW-FONT -->

<p><br>[Generic function]<br><a class=none name='draw-font'><b>draw-font</b> <i><tt>&amp;key</tt> font surface</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Blit the cached SURFACE in FONT to the destination surface SURFACE.  The cached surface is created during a previous call to any of the DRAW-STRING* functions.  Uses POSITION in the cached SURFACE to render to the X/Y coordinates on the destination SURFACE.  </p><p>This function can speed up blitting when the text remains unchanged between screen updates. </p>

</blockquote>

<!-- End of entry for DRAW-FONT -->


<!-- Entry for DRAW-FONT -->

<p><br>[Function]<br><a class=none name='draw-font'><b>draw-font</b> <i><tt>&amp;key</tt> font surface</i> =&gt; <i>result</i></a>
<blockquote><br>



</blockquote>

<!-- End of entry for DRAW-FONT -->


<!-- Entry for DRAW-FONT-AT -->

<p><br>[Generic function]<br><a class=none name='draw-font-at'><b>draw-font-at</b> <i>position <tt>&amp;key</tt> font surface</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>See DRAW-FONT.  POINT is used to position the cached SURFACE, where POINT is of type SDL:POINT. </p>

</blockquote>

<!-- End of entry for DRAW-FONT-AT -->


<!-- Entry for DRAW-FONT-AT -->

<p><br>[Method]<br><a class=none><b>draw-font-at</b> <i>position <tt>&amp;key</tt> font surface</i> =&gt; <i>result</i></a>
<blockquote><br>



</blockquote>

<!-- End of entry for DRAW-FONT-AT -->


<!-- Entry for DRAW-FONT-AT-* -->

<p><br>[Generic function]<br><a class=none name='draw-font-at-*'><b>draw-font-at-*</b> <i>x y <tt>&amp;key</tt> font surface</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>See DRAW-FONT.  X and Y are used to position the cached SURFACE, where X and Y are INTEGERS. </p>

</blockquote>

<!-- End of entry for DRAW-FONT-AT-* -->


<!-- Entry for DRAW-FONT-AT-* -->

<p><br>[Method]<br><a class=none><b>draw-font-at-*</b> <i>x y <tt>&amp;key</tt> font surface</i> =&gt; <i>result</i></a>
<blockquote><br>



</blockquote>

<!-- End of entry for DRAW-FONT-AT-* -->


<!-- Entry for DRAW-HLINE -->

<p><br>[Function]<br><a class=none name='draw-hline'><b>draw-hline</b> <i>x1 x2 y <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Draw a horizontal line of color <code>COLOR</code> from <code>X1</code> to <code>X2</code> through <code>Y</code> onto the surface <code>SURFACE</code>.  </p><h5>Parameters </h5>
<ul><li><code>X1</code> and <code>X2</code> are the horizontal start and end points of the line, of type <code>INTEGER</code>. </li>
<li><code>Y</code> is the vertical <code>INTEGER</code> coordinate that the horizontal line must intersect.   </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the line color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-HLINE -->


<!-- Entry for DRAW-LINE -->

<p><br>[Function]<br><a class=none name='draw-line'><b>draw-line</b> <i>point1 point2 <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>See <a href="#draw-line-*">DRAW-LINE-*</a>. </p><h5>Parameters </h5>
<ul><li><code>POINT1</code> and <code>POINT2</code> are the start and end x/y co-ordinates of the line, of type <code>SDL:POINT</code>. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-LINE -->


<!-- Entry for DRAW-LINE-* -->

<p><br>[Function]<br><a class=none name='draw-line-*'><b>draw-line-*</b> <i>x1 y1 x2 y2 <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Draws a line of color <code>COLOR</code> to the surface <code>SURFACE</code>. </p><h5>Parameters </h5>
<ul><li><code>X1</code><code>Y1</code> are the start X/Y coordinates of the line, of type <code>INTEGER</code>. </li>
<li><code>X2</code><code>Y2</code> are the end X/Y coordinates of the line, of type <code>INTEGER</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the line color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-LINE-* -->


<!-- Entry for DRAW-PIE -->

<p><br>[Function]<br><a class=none name='draw-pie'><b>draw-pie</b> <i>p1 rad start end <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>See <a href="#draw-pie-*">DRAW-PIE-*</a>. </p><h5>Parameters </h5>
<ul><li><code>P1</code> is the X/Y coordinate of the center of the pie, of type <code>SDL:POINT</code>. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-PIE -->


<!-- Entry for DRAW-PIE-* -->

<p><br>[Function]<br><a class=none name='draw-pie-*'><b>draw-pie-*</b> <i>x y rad start end <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Draws a pie of color <code>COLOR</code> to the surface <code>SURFACE</code>. Use <a href="#draw-filled-pie-*">DRAW-FILLED-PIE-*</a> to draw a filled pie. </p><h5>Parameters </h5>
<ul><li><code>X</code> and <code>Y</code> specify the center coordinate of the pie, of type <code>INTEGER</code>. </li>
<li><code>RAD</code> is the pie radius, of type <code>INTEGER</code>. </li>
<li><code>START</code> is the pie start, of type <code>INTEGER</code>. </li>
<li><code>END</code> is the pie end, of type <code>INTEGER</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the circumference color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-PIE-* -->


<!-- Entry for DRAW-PIXEL -->

<p><br>[Function]<br><a class=none name='draw-pixel'><b>draw-pixel</b> <i>position <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>See <a href="#draw-pixel-*">DRAW-PIXEL-*</a>. </p><h5>Parameters </h5>
<ul><li><code>POSITION</code> is the X/Y coordinate of the pixel, of type <code>SDL:POINT</code>. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-PIXEL -->


<!-- Entry for DRAW-PIXEL-* -->

<p><br>[Function]<br><a class=none name='draw-pixel-*'><b>draw-pixel-*</b> <i>x y <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Draw a single pixel of color <code>COLOR</code> to the surface <code>SURFACE</code> at the specified <code>X</code> and <code>Y</code> coordiates.  </p><h5>Parameters </h5>
<ul><li><code>X</code> and <code>Y</code> specify the coordinates of the pixel, and are of type <code>INTEGER</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the pixel color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-PIXEL-* -->


<!-- Entry for DRAW-POLYGON -->

<p><br>[Function]<br><a class=none name='draw-polygon'><b>draw-polygon</b> <i>points <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Draw the circumference of a polygon of color <code>COLOR</code> to surface SURFACE using the vertices in <code>POINTS</code>. Use <a href="#draw-filled-polygon-*">DRAW-FILLED-POLYGON-*</a> to draw a filled polygon. </p><h5>Parameters </h5>
<ul><li><code>POINTS</code> is the list of vertices for the polygon. <code>POINTS</code> is a list of <code>SDL:POINT</code>s. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the circumference color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-POLYGON -->


<!-- Entry for DRAW-RECTANGLE -->

<p><br>[Function]<br><a class=none name='draw-rectangle'><b>draw-rectangle</b> <i>rect <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>See <a href="#draw-rectangle-*">DRAW-RECTANGLE-*</a>. </p><h5>Parameters </h5>
<ul><li><code>RECT</code> is the rectangle to draw, of type <code>SDL:RECTANGLE</code>. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-RECTANGLE -->


<!-- Entry for DRAW-RECTANGLE-* -->

<p><br>[Function]<br><a class=none name='draw-rectangle-*'><b>draw-rectangle-*</b> <i>x y w h <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Draw a rectangle outline of color <code>COLOR</code> to the surface <code>SURFACE</code>. </p><h5>Parameters </h5>
<ul><li><code>X</code> and <code>Y</code> are the <code>INTEGER</code> coordinates of the top-left corner of the rectangle. </li>
<li><code>W</code> and <code>H</code> are the width and height of the rectangle, of type <code>INTEGER</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the line color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-RECTANGLE-* -->


<!-- Entry for DRAW-SHAPE -->

<p><br>[Function]<br><a class=none name='draw-shape'><b>draw-shape</b> <i>points type <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Draw a polygon of color <code>COLOR</code> to the surface <code>SURFACE</code> using the vertices in <code>POINTS</code>. </p><h5>Parameters </h5>
<ul><li><code>POINTS</code> is a list of vertices, of type <code>SDL:POINT</code></li>
<li><code>TYPE</code> describes the line style used to draw the polygon and may be one of  <code>:LINE-STRIP</code>, <code>:LINES</code>, or <code>:POINTS</code>. Use <code>:LINE-STRIP</code> to draw a single continuous line through the specified waypoints. Use <code>:LINES</code> to draw a line between alternate waypoint pairs. Use <code>:POINTS</code> to draw a single pixel at each waypoint. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the line color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul><h5>Example </h5>
<pre><code>(DRAW-SHAPE (LIST (SDL:POINT :X 60  :Y 40)
	    (SDL:POINT :X 160 :Y 10)
	    (SDL:POINT :X 170 :Y 150)
	    (SDL:POINT :X 60  :Y 150))
    :LINE-STRIP)
</code></pre>

</blockquote>

<!-- End of entry for DRAW-SHAPE -->


<!-- Entry for DRAW-STRING-SHADED -->

<p><br>[Function]<br><a class=none name='draw-string-shaded'><b>draw-string-shaded</b> <i>c p1 fg-color bg-color <tt>&amp;key</tt> font surface</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>See <a href="#draw-string-shaded-*">DRAW-STRING-SHADED-*</a>. </p><h5>Parameters </h5>
<ul><li><code>P1</code> is the x and y position to render the text, of type <code>SDL:POINT</code>. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-STRING-SHADED -->


<!-- Entry for DRAW-STRING-SHADED-* -->

<p><br>[Function]<br><a class=none name='draw-string-shaded-*'><b>draw-string-shaded-*</b> <i>c x y fg-color bg-color <tt>&amp;key</tt> font surface</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Draw text <code>C</code> using at location <code>X</code><code>Y</code> using font <code>FONT</code> with text color <code>FG-COLOR</code> and background color <code>BG-COLOR</code> onto surface <code>SURFACE</code>.  The surface background is filled with <code>BG-COLOR</code> so the surface cannot be keyed over other surfaces. </p><ul><li><code>C</code> is the text to render.  </li>
<li><code>X</code> and <code>Y</code> are the x and y position coordinates, as <code>INTEGERS</code>. </li>
<li><code>FG-COLOR</code> color is the text color, of type SDL:SDL-COLOR </li>
<li><code>BG-COLOR</code> color is the background color used to fill the surface <code>SURFACE</code>, of type SDL:SDL-COLOR </li>
<li><code>FONT</code> is the font face used to render the text. Of type <code>FONT</code>.  Bound to <code>*DEFAULT-FONT*</code> if unspecified.  </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
</ul><h5>Returns </h5>
<ul><li>Returns the font <code>FONT</code>. </li>
</ul><h5>Example </h5>
<pre><code>(DRAW-STRING-SHADED-* &amp;quot;Hello World!&amp;quot; 0 0 F-COLOR B-COLOR :SURFACE A-SURFACE)
</code></pre>

</blockquote>

<!-- End of entry for DRAW-STRING-SHADED-* -->


<!-- Entry for DRAW-STRING-SOLID -->

<p><br>[Function]<br><a class=none name='draw-string-solid'><b>draw-string-solid</b> <i>c p1 <tt>&amp;key</tt> font surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>See <a href="#draw-string-solid-*">DRAW-STRING-SOLID-*</a>. </p><h5>Parameters </h5>
<ul><li><code>P1</code> is the x and y position to render the text, of type <code>SDL:POINT</code>. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-STRING-SOLID -->


<!-- Entry for DRAW-STRING-SOLID-* -->

<p><br>[Function]<br><a class=none name='draw-string-solid-*'><b>draw-string-solid-*</b> <i>c x y <tt>&amp;key</tt> font surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Draw text <code>C</code> at location <code>X</code><code>Y</code> using font <code>FONT</code> with color <code>COLOR</code> onto surface <code>SURFACE</code>. The text is keyed onto SURFACE. </p><h5>Parameters </h5>
<ul><li><code>C</code> is the text to render.  </li>
<li><code>X</code> and <code>Y</code> are the x and y position coordinates, as <code>INTEGERS</code>. </li>
<li><code>FONT</code> is the font face used to render the string. Of type <code>FONT</code>.  Bound to <code>*DEFAULT-FONT*</code> if unspecified.  </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> color is the text color, of type <code>SDL:SDL-COLOR</code>. </li>
</ul><h5>Returns </h5>
<ul><li>Returns the font <code>FONT</code>. </li>
</ul><h5>Example </h5>
<pre><code>(DRAW-STRING-SOLID-* &amp;quot;Hello World!&amp;quot; 0 0 :SURFACE A-SURFACE :COLOR A-COLOR)
</code></pre>

</blockquote>

<!-- End of entry for DRAW-STRING-SOLID-* -->


<!-- Entry for DRAW-TRIGON -->

<p><br>[Function]<br><a class=none name='draw-trigon'><b>draw-trigon</b> <i>point1 point2 point3 <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Draw the outline of a trigon or triangle, of color <code>COLOR</code> to surface <code>SURFACE</code>. Use <a href="#draw-filled-trigon-*">DRAW-FILLED-TRIGON-*</a> to draw a filled trigon. </p><h5>Parameters </h5>
<ul><li><code>POINT1</code>, <code>POINT2</code> and <code>POINT3</code> specify the vertices of the trigon, of type <code>SDL:POINT</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the circumference color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-TRIGON -->


<!-- Entry for DRAW-VLINE -->

<p><br>[Function]<br><a class=none name='draw-vline'><b>draw-vline</b> <i>x y1 y2 <tt>&amp;key</tt> surface color</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Draw a vertical line of color <code>COLOR</code> from <code>Y1</code> to <code>Y2</code> through <code>X</code> onto the surface <code>SURFACE</code>.  </p><h5>Parameters </h5>
<ul><li><code>X</code> is the horizontal <code>INTEGER</code> coordinate that the vertical line must intersect.   </li>
<li><code>Y1</code> and <code>Y2</code> are the vertical start and end points of the line, of type <code>INTEGER</code>. </li>
<li><code>SURFACE</code> is the target surface, of type <code>SDL:SDL-SURFACE</code>. Bound to <code>SDL:*DEFAULT-SURFACE*</code> if unspecified. </li>
<li><code>COLOR</code> is the line color, of type <code>SDL:COLOR</code> or <code>SDL:COLOR-A</code>. Bound to <code>SDL:*DEFAULT-COLOR*</code> if unspecified. </li>
</ul>

</blockquote>

<!-- End of entry for DRAW-VLINE -->


<!-- Entry for FONT -->

<p><br>[Standard class]<br><a class=none name='font'><b>font</b></a>
<blockquote><br>

<p>A <code>FONT</code> object manages the resources for the font. These resources include  any cached surface as well as the foreign array containing the font data. </p><p>The cached surface is created by a call to any of the RENDER-STRING* functions.  Use <a href="#draw-font">DRAW-FONT</a>, <a href="#draw-font-at">DRAW-FONT-AT</a>  or <a href="#draw-font-at-*">DRAW-FONT-AT-*</a> to draw the cached surface. </p><p>Prior to the first call to a RENDER-STRING* function, the cached surface is <code>NIL</code>. </p>

</blockquote>

<!-- End of entry for FONT -->


<!-- Entry for FONT-HEIGHT -->

<p><br>[Generic function]<br><a class=none name='font-height'><b>font-height</b> <i>font</i> =&gt; <i>result</i></a>
<blockquote><br>



</blockquote>

<!-- End of entry for FONT-HEIGHT -->


<!-- Entry for FONT-HEIGHT -->

<p><br>[Method]<br><a class=none><b>font-height</b> <i>(font font)</i> =&gt; <i>result</i></a>
<blockquote><br>



</blockquote>

<!-- End of entry for FONT-HEIGHT -->


<!-- Entry for FONT-WIDTH -->

<p><br>[Generic function]<br><a class=none name='font-width'><b>font-width</b> <i>font</i> =&gt; <i>result</i></a>
<blockquote><br>



</blockquote>

<!-- End of entry for FONT-WIDTH -->


<!-- Entry for FONT-WIDTH -->

<p><br>[Method]<br><a class=none><b>font-width</b> <i>(font font)</i> =&gt; <i>result</i></a>
<blockquote><br>



</blockquote>

<!-- End of entry for FONT-WIDTH -->


<!-- Entry for FREE-FONT -->

<p><br>[Generic function]<br><a class=none name='free-font'><b>free-font</b> <i>font</i> =&gt; <i>result</i></a>
<blockquote><br>



</blockquote>

<!-- End of entry for FREE-FONT -->


<!-- Entry for FREE-FONT -->

<p><br>[Method]<br><a class=none><b>free-font</b> <i>(font font)</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Free resources associated with the font <code>FONT</code>. This includes freeing the cached surface and the foreign array containing the font data. </p>

</blockquote>

<!-- End of entry for FREE-FONT -->


<!-- Entry for INITIALISE-DEFAULT-FONT -->

<p><br>[Function]<br><a class=none name='initialise-default-font'><b>initialise-default-font</b> <i><tt>&amp;optional</tt> font-definition</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Creates a new <code>FONT</code> object from the font definition in <code>FONT-DEFINITION</code>. Sets the font <code>FONT</code> as the default font to be used for subsequent font rendering or drawing operations.  </p><p>Binds the symbol <code>*DEFAULT-FONT*</code> to font. Functions that take a <code>FONT</code> argument use <code>*DEFAULT-FONT*</code>  unless otherwise specified. Returns a new <code>FONT</code>, or <code>NIL</code> if unsuccessful. </p>

</blockquote>

<!-- End of entry for INITIALISE-DEFAULT-FONT -->


<!-- Entry for INITIALISE-FONT -->

<p><br>[Function]<br><a class=none name='initialise-font'><b>initialise-font</b> <i>font-definition</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Creates a new <code>FONT</code> object from the font data in <code>FONT-DEFINITION</code>. Returns a new <code>FONT</code>, or <code>NIL</code> if unsuccessful. </p>

</blockquote>

<!-- End of entry for INITIALISE-FONT -->


<!-- Entry for RENDER-STRING-SHADED -->

<p><br>[Function]<br><a class=none name='render-string-shaded'><b>render-string-shaded</b> <i>string fg-color bg-color <tt>&amp;key</tt> font free cache</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Render the string <code>STRING</code> using font <code>FONT</code> with text color <code>FG-COLOR</code> and background color <code>BG-COLOR</code> to a new <code>SURFACE</code>.  The dimensions of the new surface are height == <code>FONT</code> height, and width == <code>FONT</code> width * <code>STRING</code> length. The surface background is filled with <code>BG-COLOR</code> so the surface cannot be keyed over other surfaces. Use <code>:CACHE T</code> to cache the new surface in the <code>FONT</code> object. When <code>:FREE T</code> any exisiting cached surface in <code>FONT</code> is automatically freed. When <code>:FREE NIL</code> the caller is responsible for freeing any existing cached surface in <code>FONT</code>. </p><h5>Parameters </h5>
<ul><li><code>STRING</code> is the text to render.  </li>
<li><code>FONT</code> is the font face used to render the <code>STRING</code>. Of type <code>FONT</code>.  Bound to <code>*DEFAULT-FONT*</code> if unspecified.  </li>
<li><code>FG-COLOR</code> color is the text color, of type SDL:SDL-COLOR </li>
<li><code>BG-COLOR</code> color is the background color used to fill the surface, of type SDL:SDL-COLOR </li>
<li><code>FREE</code> when <code>T</code> will free any exisitng cached surface in <code>FONT</code>. </li>
<li><code>CACHE</code> when <code>T</code> will cache the newly created SURFACE in <code>FONT</code>. </li>
</ul><h5>Returns </h5>
<ul><li>Returns a new cached surface <code>SDL:SDL-SURFACE</code>. </li>
</ul><h5>Example </h5>
<pre><code>(DRAW-STRING-SHADED &amp;quot;Hello World!&amp;quot; F-COLOR B-COLOR)
</code></pre>

</blockquote>

<!-- End of entry for RENDER-STRING-SHADED -->


<!-- Entry for RENDER-STRING-SOLID -->

<p><br>[Function]<br><a class=none name='render-string-solid'><b>render-string-solid</b> <i>string <tt>&amp;key</tt> font color free cache</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Render the string <code>STRING</code> using font <code>FONT</code> with text color <code>COLOR</code> to a new <code>SURFACE</code>.  The dimensions of the new surface are height == <code>FONT</code> height, and width == <code>FONT</code> width * <code>STRING</code> length. The surface background is transparent and therefore can be keyed over other surfaces. Use <code>:CACHE T</code> to cache the new surface in the <code>FONT</code> object. When <code>:FREE T</code> any exisiting cached surface in <code>FONT</code> is automatically freed. When <code>:FREE NIL</code> the caller is responsible for freeing any existing cached surface in <code>FONT</code>. </p><h5>Parameters </h5>
<ul><li><code>STRING</code> is the text to render.  </li>
<li><code>FONT</code> is the font face used to render the <code>STRING</code>. Of type <code>FONT</code>.  Bound to <code>*DEFAULT-FONT*</code> if unspecified.  </li>
<li><code>COLOR</code> color is the text color, of type <code>SDL:SDL-COLOR</code>. </li>
<li><code>FREE</code> when <code>T</code> will free any exisitng cached surface in <code>FONT</code>. </li>
<li><code>CACHE</code> when <code>T</code> will cache the newly created SURFACE in <code>FONT</code>. </li>
</ul><h5>Returns </h5>
<ul><li>Returns a new cached surface <code>SDL:SDL-SURFACE</code>. </li>
</ul><h5>Example </h5>
<pre><code>(DRAW-STRING-SOLID &amp;quot;Hello World!&amp;quot; :COLOR A-COLOR)
</code></pre>

</blockquote>

<!-- End of entry for RENDER-STRING-SOLID -->


<!-- Entry for ROTO-ZOOM-SIZE -->

<p><br>[Function]<br><a class=none name='roto-zoom-size'><b>roto-zoom-size</b> <i>width height angle zoom</i> =&gt; <i>result</i></a>
<blockquote><br>



</blockquote>

<!-- End of entry for ROTO-ZOOM-SIZE -->


<!-- Entry for ROTO-ZOOM-SIZE-XY -->

<p><br>[Function]<br><a class=none name='roto-zoom-size-xy'><b>roto-zoom-size-xy</b> <i>width height angle zoomx zoomy</i> =&gt; <i>result</i></a>
<blockquote><br>



</blockquote>

<!-- End of entry for ROTO-ZOOM-SIZE-XY -->


<!-- Entry for ROTO-ZOOM-XY -->

<p><br>[Function]<br><a class=none name='roto-zoom-xy'><b>roto-zoom-xy</b> <i>angle zoomx zoomy smooth <tt>&amp;key</tt> surface</i> =&gt; <i>result</i></a>
<blockquote><br>



</blockquote>

<!-- End of entry for ROTO-ZOOM-XY -->


<!-- Entry for SET-DEFAULT-FONT -->

<p><br>[Function]<br><a class=none name='set-default-font'><b>set-default-font</b> <i>font</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Sets the font <code>FONT</code> as the default font to be used for subsequent font rendering or drawing operations. Binds the symbol <code>*DEFAULT-FONT*</code> to font.  Functions that take a <code>FONT</code> argument use <code>*DEFAULT-FONT*</code> unless otherwise specified. Returns a new <code>FONT</code>, or <code>NIL</code> if unsuccessful. </p>

</blockquote>

<!-- End of entry for SET-DEFAULT-FONT -->


<!-- Entry for WITH-BEZIER -->

<p><br>[Macro]<br><a class=none name='with-bezier'><b>with-bezier</b> <i>(<tt>&amp;optional</tt> segments) declaration* statement*</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Draw a bezier curve of color <code>*DEFAULT-COLOR*</code> to the surface <code>*DEFAULT-SURFACE*</code>. The shape of the Bezier curve is defined by control points.  A control point is a vertex containing an X and Y coordinate pair. </p><h5>Local Methods </h5>
<p>A vertex may be added using: </p><ul><li><code>ADD-VERTEX</code> which accepts an <code>SDL:POINT</code>, or  </li>
<li><code>ADD-VERTEX-*</code> which is the x/y spread version </li>
</ul><p><code>ADD-VERTEX</code> and <code>ADD-VERTEX-*</code> are valid only within the scop of <code>WITH-BEZIER</code>. </p><h5>Parameters </h5>
<ul><li><code>SEGMENTS</code> is the number of segments used to draw the Bezier curve.   Default is 10 segments if unspecified. The greater the number of segments,  the smoother the curve. </li>
</ul><h5>Example </h5>
<pre><code>(SDL:WITH-COLOR (COL (SDL:COLOR))
   (WITH-BEZIER (30)
     (ADD-VERTEX-* 60  40)
     (ADD-VERTEX-* 160 10)
     (ADD-VERTEX-* 170 150)
     (ADD-VERTEX-* 60  150)))
</code></pre>

</blockquote>

<!-- End of entry for WITH-BEZIER -->


<!-- Entry for WITH-CURVE -->

<p><br>[Macro]<br><a class=none name='with-curve'><b>with-curve</b> <i>(shape-type <tt>&amp;optional</tt> segments) declaration* statement*</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Draw a Cattmul-Rom spline of color <code>*DEFAULT-COLOR*</code> to the surface <code>*DEFAULT-SURFACE*</code>. The shape of the curve is defined by waypoints.  A waypoint is a vertex containing an X and Y coordinate pair. </p><h5>Local Methods </h5>
<p>A vertex may be added using: </p><ul><li><code>ADD-VERTEX</code> which accepts an <code>SDL:POINT</code>, or  </li>
<li><code>ADD-VERTEX-*</code> which is the x/y spread version </li>
</ul><p><code>ADD-VERTEX</code> and <code>ADD-VERTEX-*</code> are valid only within the scope of <code>WITH-CURVE</code>. </p><h5>Parameters </h5>
<ul><li><code>SHAPE-TYPE</code> describes the line style used to draw the curve and may be one of  <code>:LINE-STRIP</code>, <code>:LINES</code>, or <code>:POINTS</code>. Use <code>:LINE-STRIP</code> to draw a single continuous line through the specified waypoints. Use <code>:LINES</code> to draw a line between alternate waypoint pairs. Use <code>:POINTS</code> to draw a single pixel at each waypoint. </li>
<li><code>SEGMENTS</code> is the number of segments used to draw the Catmull-Rom spline.   Default is 10 segments if unspecified. The greater the number of segments,  the smoother the spline. </li>
</ul><h5>Example </h5>
<pre><code>(SDL:WITH-COLOR (COL (SDL:COLOR))
   (WITH-CURVE (:LINE-STRIP 30)
     (ADD-VERTEX-* 60  40)
     (ADD-VERTEX-* 160 10)
     (ADD-VERTEX-* 170 150)
     (ADD-VERTEX-* 60  150)))
</code></pre>

</blockquote>

<!-- End of entry for WITH-CURVE -->


<!-- Entry for WITH-SHAPE -->

<p><br>[Macro]<br><a class=none name='with-shape'><b>with-shape</b> <i>(shape-type) declaration* statement*</i> =&gt; <i>result</i></a>
<blockquote><br>

<p>Draw a polygon of color <code>*DEFAULT-COLOR*</code> to the surface <code>*DEFAULT-SURFACE*</code>. </p><h5>Local Methods </h5>
<p>A vertex may be added using: </p><ul><li><code>ADD-VERTEX</code> which accepts an <code>SDL:POINT</code>, or  </li>
<li><code>ADD-VERTEX-*</code> which is the x/y spread version </li>
</ul><p>ADD-VERTEX and ADD-VERTEX-* are valid only within the scop of WITH-SHAPE. </p><h5>Parameters </h5>
<ul><li><code>SHAPE-TYPE</code> describes the line style used to draw the shape and may be one of  <code>:LINE-STRIP</code>, <code>:LINES</code>, or <code>:POINTS</code>. Use <code>:LINE-STRIP</code> to draw a single continuous line through the specified waypoints. Use <code>:LINES</code> to draw a line between alternate waypoint pairs. Use <code>:POINTS</code> to draw a single pixel at each waypoint. </li>
</ul><h5>Example </h5>
<pre><code>(SDL:WITH-COLOR (COL (SDL:COLOR))
   (WITH-SHAPE (:POINTS)
     (ADD-VERTEX-* 60  40)
     (ADD-VERTEX-* 160 10)
     (ADD-VERTEX-* 170 150)
     (ADD-VERTEX-* 60  150)))
</code></pre>

</blockquote>

<!-- End of entry for WITH-SHAPE -->


<!-- Entry for ZOOM-SURFACE -->

<p><br>[Function]<br><a class=none name='zoom-surface'><b>zoom-surface</b> <i>zoomx zoomy smooth <tt>&amp;key</tt> surface</i> =&gt; <i>result</i></a>
<blockquote><br>



</blockquote>

<!-- End of entry for ZOOM-SURFACE -->


<!-- Entry for ZOOM-SURFACE-SIZE -->

<p><br>[Function]<br><a class=none name='zoom-surface-size'><b>zoom-surface-size</b> <i>width height zoomx zoomy</i> =&gt; <i>result</i></a>
<blockquote><br>



</blockquote>

<!-- End of entry for ZOOM-SURFACE-SIZE -->
<br>&nbsp;<br><h3><a class=none name="ack">Acknowledgements</a></h3>

<ul>
  <li>
    Documentation prepared using:
  </li>
  <ul>
    <li>
      Edi Weitz's
      <a href="http://weitz.de/documentation-template/">DOCUMENTATION-TEMPLATE</a>.
    </li>
    <li>
      Gary King's
      <a href="http://common-lisp.net/project/cl-markdown/">CL-MARKDOWN</a>.
      </li>
  </ul>
</ul>

<p>
  <a href="index.html">BACK</a>
</p>

</body>
</html>
